home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / MYMUD21.ZIP / MMUD21.ZIP / SOURCE / 11_STUFF.ZIP / DB2BIN.ZIP / DB2BIN.PAS < prev    next >
Pascal/Delphi Source File  |  1993-07-05  |  3KB  |  128 lines

  1. Program Db2Bin;
  2. Uses Dos,DB,OldHead;
  3.  
  4. Type LongRec    = Record
  5.                     Start   : LongInt;
  6.                     Length  : Word;
  7.                   End;
  8.      IDXRecord  = Record
  9.                     Name     : String;
  10.                     Password : String[40];
  11.                     Key      : String[40];
  12.                     Location : Integer;
  13.                     Contents : Integer;
  14.                     Exits    : Integer;
  15.                     Next     : Integer;
  16.                     Owner    : Integer;
  17.                     Pennies  : Integer;
  18.  
  19.                     ObjType  : Byte;     { Thing, room, exit, player }
  20.                     ObjLevel : Byte;     { Toad,player,builder,wizard,god }
  21.  
  22.                     GenFlags : LongInt;  { None
  23.                                            Male
  24.                                            Female
  25.                                            Neuter
  26.  
  27.                                            Temple
  28.                                            Haven
  29.                                            -
  30.                                            -
  31.  
  32.                                            Link_OK,
  33.                                            Dark,
  34.                                            Stiky,
  35.                                            -}
  36.  
  37.                     Desc     : LongRec;
  38.  
  39.                     Fail     : LongRec;
  40.                     Success  : LongRec;
  41.                     OFail    : LongRec;
  42.                     OSuccess : LongRec;
  43.  
  44.                   End;
  45.  
  46. Var
  47.     IDX     : File of IDXRecord;
  48.     TXT     : File;
  49.     PLY     : File Of Integer;
  50.     IDXrec  : IDXrecord;
  51.     C       : Integer;
  52.     Name    : ComStr;
  53.  
  54. Procedure DumpText(Var Txt : File;
  55.                    Var Rec : LongRec;
  56.                        P   : StrPtr);
  57. Var RW : Word;
  58. Begin
  59. FillChar(Rec,SizeOf(Rec),#00);
  60. If P^[0]=#00
  61.    Then Exit;
  62. While (P^[Rec.Length]<>#00) And (Rec.Length<=1024) Do
  63.  Inc(Rec.Length);
  64. Rec.Start:=FilePos(Txt);
  65. BlockWrite(Txt,P^[0],Rec.Length,RW);
  66. If RW<>Rec.Length
  67.    Then Halt(3);
  68. End;
  69.  
  70. Begin
  71. ReadDB;
  72. Name:=ParamStr(1);
  73. Name:=Copy(Name,1,Pos('.',Name)-1);
  74.  
  75. Assign(IDX,Name+'.IDX');
  76. Rewrite(IDX);
  77. Assign(TXT,Name+'.DAT');
  78. Rewrite(TXT,1);
  79. Assign(Ply,Name+'.PLY');
  80. Rewrite(Ply);
  81.  
  82.  
  83. For C:=0 To MapCount Do
  84.  Begin
  85.  Write(' ■ ',MapCount-C:3,#13);
  86.  FillChar(IDXRec,SizeOf(IDXRec),#00);
  87.  With Map[C]^ Do
  88.   Begin
  89.   IDXRec.Name     := Asciiz2Str(Name^);
  90.   IDXRec.Key      := Asciiz2Str(Key^);
  91.   IDXRec.Password := Asciiz2Str(Password^);
  92.   IDXREC.Location := Location;
  93.   IDXRec.Contents := Contents;
  94.   IDXRec.Next     := Next;
  95.   IDXRec.Exits    := Exits;
  96.   IDXRec.Pennies  := Pennies;
  97.   IDXRec.Owner    := Owner;
  98.  
  99.   IDXRec.ObjType  := Flags And $0007;
  100.  
  101.   IDXRec.ObjLevel := 1;
  102.   If (Flags and Builder)=Builder
  103.      Then IDXRec.ObjLevel:=2;
  104.   If (Flags and Wizard)=Wizard
  105.      Then IdxRec.ObjLevel:=3;
  106.  
  107.  
  108.  
  109.   DumpText(Txt,IDXrec.Desc,Desc);
  110.   DumpText(Txt,IDXrec.Fail,Fail);
  111.   DumpText(Txt,IDXrec.Success,Success);
  112.   DumpText(Txt,IDXRec.OFail,OFail);
  113.   DumpText(Txt,IDXRec.OSuccess,OSuccess);
  114.   End; {With}
  115.   Write(IDX,IDXRec);
  116.   If IsPlayer(C)
  117.      Then Begin
  118.           WriteLn(' ■ Player: (',C:3,') ',IDXRec.Name);
  119.           Write(PLY,C);
  120.           End;
  121.  End;
  122. WriteLn;
  123. Close(IDX);
  124. Close(TXT);
  125. Close(PLY);
  126. DisposeDB;
  127. End.
  128.